#define _CRT_SECURE_NO_WARNINGS

//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//
//
//	return 0;
//}

//#include <iostream>
//#include<vector>
//using namespace std;
//
//int main()
//{
//    int n, m, x, y;
//    cin >> n >> m >> x >> y;
//
//    vector<vector<int>> dp(30, vector<int>(30));
//    vector<vector<int>> ret(28, vector<int>(28));
//
//    dp[2][1] = 1;
//
//    ret[x][y] = ret[x - 1][y - 2] = ret[x - 2][y - 1] = ret[x - 2][y + 1] = ret[x - 1][y + 2] = 1;
//    ret[x + 1][y - 2] = ret[x + 2][y - 1] = ret[x + 2][y + 1] = ret[x + 1][y + 2] = 1;
//
//
//    for (int i = 2; i <= n + 2; i++)
//    {
//        for (int j = 2; j <= m + 2; j++)
//        {
//            if (ret[i - 2][j - 2] != 1)
//                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
//        }
//    }
//
//    cout << dp[n + 2][m + 2] << '\n';
//
//    return 0;
//}

#include<string>
#include<iostream>
using namespace std;

int getLongestPalindrome(string A)
{
    int ans = -1;
    int n = A.size();
    for (int r = 1, l = 0; l < n; r++)
    {
        if ( A[l] == A[r])
        {
            int begin = l;
            int end = r;
            int count = 1;
            while (begin <= end)
            {
                if (A[begin] == A[end]) count++;
                else
                {
                    count = 1;
                    break;
                }
                begin++;
                end--;
            }
            ans = max(ans, count);
        }
        if (r == n - 1)
        {
            l++;
            r = l + 1;
        }
    }

    return ans;
}

int main()
{
    string s("ababc");
    getLongestPalindrome(s);

    return 0;
}